import java.util.*;

public class MyHashMap {
    public Set<Integer> deleteRepeatEle(int[] array){
        Set<Integer> set=new HashSet<>();
        for (Integer x:array) {
            set.add(x);
        }
        return set;
    }


    public static int findFirstRepeatEle(int[] array){
       Set<Integer> set=new HashSet<>();
        for (Integer x:array) {
            if(set.contains(x)){
                return x;

            }
            set.add(x);
        }
        return -1;
    }
    public static Map<Integer,Integer> func1(int[] array){
        Map<Integer,Integer> map=new HashMap<>();
        //判断array中的元素是否在map当中，如果不在就是1，在就在原来的基础上+1.
        for (int i = 0; i < array.length; i++) {
            if(map.get(array[i])==null){
                map.put(array[i],1);
            }else {
                int val=map.get(array[i]);
                map.put(array[i],val+1);
            }

        }
        return map;
    }
    public int singleNumber(int[] nums) {
        Set<Integer> set= new HashSet<>();
        for(int x:nums){
            if(set.contains(x)){
                set.remove(x);
            }else{
                set.add(x);
            }

        }
        for(int i=0;i<nums.length;i++){
            if(set.contains(nums[i])){
                return nums[i];
            }
        }
        return -1;

    }

    //复制带随机指针节点的链表
//    public Node copyRandomList(Node head) {
//        Map<Node,Node> map=new HashMap<>();
//        Node cur=head;
//        //拷贝链表的值放入map中，构成键值对
//        while(cur!=null){
//            Node node=new Node(cur.val);
//            map.put(cur,node);
//            cur=cur.next;
//        }
//        //遍历链表重新构造值的指向
//        cur=head;
//        while(cur!=null){
//            map.get(cur).next=map.get(cur.next);
//            map.get(cur).random=map.get(cur.random);
//            cur=cur.next;
//        }
//        //返回头节点的val值，即为新节点头指针
//        return map.get(head);
//
//    }

    //旧键盘打字
    /*public class Main{
        public static void func(String strExce,String strActural){
            HashSet<Character> set=new HashSet<>();
            for(char ch:strActural.toUpperCase().toCharArray()){
                set.add(ch);
            }
            HashSet<Character> broken=new HashSet<>();
            for(char ch:strExce.toUpperCase().toCharArray()){
                if(!set.contains(ch)&&!broken.contains(ch)){
                    System.out.print(ch);
                    broken.add(ch);
                }
            }
        }
        public static void main(String[] args){
            Scanner scan=new Scanner(System.in);
            while(scan.hasNextLine()){
                String str1=scan.nextLine();
                String str2=scan.nextLine();
                func(str1,str2);
            }
        }*/

    public static void main(String[] args) {
        int[] array=new int[10000];
        Random random=new Random();
        for (int i = 0; i < array.length; i++) {
            array[i]=random.nextInt(100);
        }
        Map<Integer,Integer> map=func1(array);
        System.out.println(map);
    }

}
